package com.healthcloud.service;

import java.util.List;

import com.healthcloud.entity.TestProject;
import com.healthcloud.entity.TestProjectItem;
import com.healthcloud.entity.TestProjectKind;
import com.healthcloud.entity.TestReferenceValue;
import com.healthcloud.utils.PageParam;

/**
 * Created by houxianghua on 2015/7/22.
 */
public interface TestProjectService {
    TestProject get(int id);

    TestProjectKind getKindByCode(String testKindCode);

    TestProjectItem getItemByCode(String testItemCode);

    TestReferenceValue getReferenceById(int id);

    List<TestReferenceValue> getReferenceByItemCode(String testItemCode);

    List<TestProject> findByEntityAll(TestProject entity);

    List<TestProjectKind> findByEntityAll(TestProjectKind entity);

    List<TestProjectItem> findByEntityAll(TestProjectItem entity);

    List<TestReferenceValue> findByEntityAll(TestReferenceValue entity);

    List<TestProject> search(TestProject entity, PageParam pageParam);

    int count(TestProject entity);

    int save(TestReferenceValue entity);

    int update(TestReferenceValue entity);

    int deletes(int[] ids);

    /**
     * 验证年龄（男）的值是否已经存在
     *
     * @param minAge 年龄最小值（男）
     * @param maxAge 年龄最大值（男）
     * @param testItemCode 项目id
     * @param exception 参考值主键id（修改时使用）
     * @reurn true:验证通过
     * */
    boolean validateAgeRange(Integer minAge, Integer maxAge, String testItemCode, String exception);

    /**
     * 验证年龄（女）的值是否已经存在
     *
     * @param minAgeGirl 年龄最小值（女）
     * @param maxAgeGirl 年龄最大值（女）
     * @param testItemCode 项目id
     * @param exception 参考值主键id（修改时使用）
     * @reurn true:验证通过
     * */
    boolean validateAgeGirlRange(Integer minAgeGirl, Integer maxAgeGirl, String testItemCode, String exception);

    List<TestProjectItem> findTestProjectItem();
}
